/**
 * Classe chargée de la génération du code en rapport avec l'ouverture et la fermture du programme principal
 * 
 * @author BlobbyCompiloTeam
 *
 */

public class GenerationOuvFer {

	private static MaP map; // Référence vers la machine à pile pour générer le code
	
	/**
	 * Constructeur de la classe
	 * @param _map Référence vers la machine à pile
	 */
	public GenerationOuvFer(MaP _map){
		map = _map;
	}
	
	/**
	 * Génère le code d'entête du programme
	 */
	public void entete(){
		map.entete();
	}
	
	/**
	 * Génère le code d'ouverture du programme principal
	 * @param taille la taille des variables locales du programme principal
	 */
	public void ouv_princ(int taille){
		map.ouvprinc(taille);
	}
	
	/**
	 * Génère le code pour l'étiquette PRINC de début du programme principal
	 */
	public void etiq_princ() {
		map.etiq_princ();
	}
	
	/**
	 * Génère le code pour l'étiquette FPRINC de fin du programme principal
	 */
	public void etiq_fprinc() {
		map.etiq_fprinc();
	}
	
	/**
	 * Génère le code pour éteindre le programme
	 */
	public void exit(){
		map.queue();
		map.retourSyst();
	}
}
